vim の基本操作について
はじめに
vim 初心者である筆者が学んだことを、これから vim を学ぶ人向けに解説していきます。vim の概要と基本操作について知りたいという方は是非ご覧ください。
vim の概要
vim とはテキストエディタのことです。vscode などと類は一緒ですが、その性質は大きく異なります。わかりやすい特徴としては vim はマウスを使いません。全てキーボードで作業を行います。
例えば、テキストの挿入、選択、削除、ファイルの編集その他様々な操作をマウスレスで行います。マウス操作より無駄がなく選択などができるので、効率的に作業ができます。ただし、慣れるのには少し時間がかかります。
また、vim はターミナルからコマンドを打ち込むことで展開できるので、わざわざ vscode 等のエディタを開く必要がないです。
vim のモード
vim には幾つかモードがあり、これを使い分けることで作業を進めます。
| モード | 概要 |
|---|---|
| NORMAL | カーソルの移動、テキストのコピー、削除、置換 |
| INSERT | 文字の入力 |
| VISUAL | 文字の選択 |
| COMMAND | ファイルの保存や、vim の終了 |
vim を起動するとまずは NORMAL モードがデフォルトのモードになっています。この状態でキーボードの[i]を入力すると INSERT モードになり、文字の入力を行うことができるようになります。INSERT モードの状態で[Esc]を押すと NORMAL モードに戻ります。これは VISUAL モードも一緒でキーボードの[v]を押すと VISUAL モードになり、[Esc]で解除という流れです。
COMMAND モードは[:]を入力することで移行し、[:]の後に何を入力するかでアクションが変わってきます。例えば、[:q]と入力すると vim を終了することができます。
vim のコマンド紹介
移動系コマンド
| コマンド | 概要 |
|---|---|
| h | 左に移動 |
| j | 下に移動 |
| k | 上に移動 |
| l | 右に移動 |
効率的な移動
| コマンド | 概要 |
|---|---|
| gg | ファイルの先頭に移動 |
| G | ファイルの末尾に移動 |
| w | 単語の先頭に移動 |
| b | 単語の先頭に戻る |
| e | 単語の末尾に進む |
| 0 | 行の先頭に移動 |
| $ | 行の末尾に移動 |
| H | 画面上の最上行に移動 |
| L | 画面上の最下行に移動 |
移動系コマンドは NORMAL モードの時に機能します。INSERT モードの時に h、j などを押しても文字が入力されるので、Esc でノーマルモードに戻す必要があります。
削除系コマンド
| コマンド | 概要 |
|---|---|
| x | カーソル上の文字を削除 |
| r | カーソル上の文字を置換 r を押した後、任意の文字を押す |
| dd | 1 行削除 2dd とすると 2 行削除 数は任意 |
| dw | 単語の削除 |
| r | カーソル上の文字を置換 r を押した後、任意の文字を押す |
| vd | 選択範囲を削除 |
モード変更コマンド
| コマンド | 概要 |
|---|---|
| i | その場で INSERT モードに移行 |
| a | 1 文字後ろで INSERT モードに移行 |
| v | VISUAL モードに移行 |
| : | COMMAND モードに移行 |
| Esc | NORMAL モードに移行 |
保存、終了系コマンド
| コマンド | 概要 |
|---|---|
| :w | 内容を保存 |
| :wq | 内容を保存して終了 |
| :wq! | 内容を保存して強制終了 |
| :q! | 内容を保存せずに終了 |
コピー、ペースト、便利系コマンド
| コマンド | 概要 |
|---|---|
| yy | 1 行コピー |
| p | ペースト |
| P | カーソルの位置の上にペースト |
| v + 移動コマンド + y | 範囲を指定してコピー |
| u | 操作を一つ前に戻す |
| control + r | 操作を一つ次の状態に進める |
応用で例えば、yy5p とすると、現在の行をコピーし 5 行ペーストします。この概念は削除、コピー系のコマンドに関しては基本的には同じで、3x などとすると 3 文字削除できます。数字を絡めて色々な組み合わせを試してみていただければと思います。
おわりに
全部のコマンドを一気に覚える必要はないと思います。キーボードで移動して、INSERT モードで編集し、:wq で保存する、ということをを覚えていただくだけである程度作業はできるかなと思います。vim について関心を持つきっかけになれば幸いです。